package com.bill.concurrency.example.singleton;

import com.bill.concurrency.annotations.NotThreadSafe;
import lombok.extern.slf4j.Slf4j;

/**
 * 构建一个单例类。
 * 懒汉模式。单例实例在第一次使用时才实例化
 */
@Slf4j
@NotThreadSafe
public class SingletonExample1 {
    //单例对象
    private static SingletonExample1 instance=null;
    /**
     * 私有构造器，一定要有。
     */
    private SingletonExample1(){

    }

    //静态工厂方法。
    //这个方法是线程不安全
    public static SingletonExample1 getInstance(){
        if (instance==null){
            instance=new SingletonExample1();
        }
        return instance;
    }
}
